package com.powerbank.adminsystem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.powerbank.adminsystem.entity.AdminUser;
import com.powerbank.common.result.Result;

/**
 * 管理员用户服务接口
 */
public interface AdminUserService extends IService<AdminUser> {

    /**
     * 用户登录
     */
    Result<String> login(String username, String password, String ip);

    /**
     * 用户登出
     */
    Result<Void> logout(String token);

    /**
     * 根据用户名查询用户
     */
    Result<AdminUser> getUserByUsername(String username);

    /**
     * 根据Token获取用户信息
     */
    Result<AdminUser> getUserByToken(String token);

    /**
     * 修改密码
     */
    Result<Void> changePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 重置密码
     */
    Result<Void> resetPassword(Long userId);

    /**
     * 更新用户信息
     */
    Result<Void> updateUserInfo(AdminUser user);

    /**
     * 更新用户最后登录信息
     */
    Result<Void> updateLastLoginInfo(Long userId, String ip);
}